home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr25 / pmenv.zip / HELP.C < prev    next >
C/C++ Source or Header  |  1993-03-01  |  2KB  |  87 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define INCL_WINDIALOGS
  5. #define INCL_WINHELP
  6. #include <os2.h>
  7.  
  8. #include "help.h"
  9.  
  10.  
  11.  
  12.  
  13. /* ----------------------------------------------------------------- */
  14.  
  15. HWND InitializeHelp (HAB hab, HWND hwndFrame, USHORT idWnd,
  16.     PSZ pszHelpFilename, PSZ pszHelpTitle)
  17. {
  18.     HELPINIT    hmiHelpData;   /* Help initialization structure */
  19.     HWND        hwndHelpInstance;
  20.     CHAR        szMsg[100];
  21.  
  22.     memset (&hmiHelpData, 0, sizeof (HELPINIT));
  23.     hmiHelpData.cb = sizeof (HELPINIT);
  24.     hmiHelpData.phtHelpTable = (PVOID) (0xffff0000 | idWnd);
  25.     hmiHelpData.pszHelpWindowTitle = pszHelpTitle;
  26.     hmiHelpData.pszHelpLibraryName = pszHelpFilename;
  27.  
  28.     hwndHelpInstance = WinCreateHelpInstance (hab, &hmiHelpData);
  29.  
  30.     if (hwndHelpInstance && hmiHelpData.ulReturnCode)
  31.     {
  32.     WinDestroyHelpInstance (hwndHelpInstance);
  33.     hwndHelpInstance = 0;
  34.     }
  35.  
  36.     if (!hwndHelpInstance)
  37.     {
  38.     sprintf (szMsg, "WinCreateHelpInstance failed, rc = %lx.  "
  39.         "Program will continue without help.",
  40.         hmiHelpData.ulReturnCode);
  41.  
  42.     WinMessageBox (HWND_DESKTOP, HWND_DESKTOP, szMsg,
  43.         (PSZ) "Help Creation Error", 1,
  44.         MB_OK | MB_APPLMODAL | MB_MOVEABLE);
  45.     }
  46.     else
  47.     WinAssociateHelpInstance (hwndHelpInstance, hwndFrame);
  48.  
  49.     return hwndHelpInstance;
  50. }
  51.  
  52.  
  53.  
  54. /* ----------------------------------------------------------------- */
  55.  
  56. MRESULT ProcessHmMessages (HWND hwndHelpInstance,
  57.     USHORT msg, MPARAM mp1, MPARAM mp2)
  58. {
  59.     switch (msg)
  60.     {
  61.     case HM_ERROR:
  62.     if (hwndHelpInstance && LONGFROMMP(mp1) == HMERR_NO_MEMORY)
  63.     {
  64.         WinMessageBox (HWND_DESKTOP, HWND_DESKTOP,
  65.         (PSZ) "Help Terminated Due to Error",
  66.         (PSZ) "Help Error",
  67.         1,
  68.         MB_OK | MB_APPLMODAL | MB_MOVEABLE);
  69.         WinDestroyHelpInstance (hwndHelpInstance);
  70.     }
  71.     else
  72.     {
  73.             CHAR    szMsg[ 50 ];
  74.  
  75.             sprintf (szMsg, "Help Error %lx Occurred",
  76.                 LONGFROMMP (mp1));
  77.         WinMessageBox (HWND_DESKTOP, HWND_DESKTOP,
  78.         szMsg, "Help Error", 0,
  79.         MB_OK | MB_APPLMODAL | MB_MOVEABLE);
  80.     }
  81.  
  82.     return (MRESULT) 0;
  83.     }
  84.  
  85.     return (MRESULT) 0;
  86. }
  87.